#ifndef BPE_CONTROLER_H
#define BPE_CONTROLER_H


#include <vector> //or boost's if there is any check on that

#include <boost/shared_ptr.hpp>

#include <irrlicht.h>

using namespace irr;
using namespace core;
using namespace scene;

#include "BPEMath/BPEPoint3d.h"
#include "BPEPhysics/BPEPhysicsObject.h"
#include "BPEIrrlichtWrapperClasses/BPEIrrlichtPhysicsObject.h"
#include "BPECollision/BPECollisionWorld.h"
#include "BPECollision/BPECollisionData.h"
#include "BPEPhysics/BPEPhysicsWorld.h"

#include <boost/shared_ptr.hpp>
using namespace std;
using namespace boost;



class BPEController {

private:
	vector<ISceneNode*> bpeMeshSceneNodeObjects;

	
	shared_ptr<BPEPhysicsWorld> pWorld;
	


public:
	BPEController();
	BPEController(const BPEPoint3d &worldSize);
	BPEController(const BPEPoint3d &worldEdge1, const BPEPoint3d &worldEdge2);

	void addIrrlichtMeshSceneNode(ISceneNode *x, const double &mass=10, const bool& physicsOn=true);
	void gameRoutine();




};


#endif